//! @file   lc_system_exception.h
//! @brief  
//! @author Sayan Chaliha
//! @date   September, 2011
//!
//! 
#ifndef _LC_SYSTEM_EXCEPTION_H
#define _LC_SYSTEM_EXCEPTION_H

#include "libcyan_internal.h"
#include "lc_types.h"
#include "lc_system.h"
#include "lc_exception.h"

namespace cyan {
  class CYAN_API SystemException : public Exception {
  public:
    SystemException(Int errorNumber)            throw ();
    virtual ~SystemException()                  throw ();

    virtual const Char*   what()          const throw ();
    virtual Int           errorCode()     const throw ();
    virtual const Char*   errorMessage()  const throw ();

  private:
    Int errorCode_;
    String errorMessage_;
  };
}

#endif /* _LC_SYSTEM_EXCEPTION_H */
